home *** CD-ROM | disk | FTP | other *** search
- • Partitioning hard drives − It is possible to partition hard drives
- with less than 10 Mbyte. The answer is in the REM statements in the
- Harddisc program on the PC disc. Change the A2080 in line 610 to any
- multiple of &8800 (in hex). Details are given in the REMs.
- • Hearsay − We mentioned changing modem baud rates in H & T in May.
- Philip Green sends us a way of doing this automatically suggested by
- Alfons Tjin. Use a dial prefix in the modem driver edit screen of just
- “AT” and then put B3D or B0D, as necessary, in front of the phone number
- in the telephone directory.
- • Case sensitive system variables − Some readers have had problems
- using the *SETMACRO Alias$ command. This is because system variables are
- case sensitive i.e. you need to type: Alias$ not ALIAS$
- • Overload passwords: A B BROS, CABBAGED, SLIPPERS, PREVIOUS,
- PILLAGED, BOVERBOD, LAVATORY, CASSETTE, WHALEÊFM, EXTRACTS, STOPKETS
- The following hints were sent in by Lorcan Mongey
- • ‘T’ Option in LDR and STR − Assembly language programmers may have
- noticed that the Programmer’s Reference Manual mentions a ‘T’ option in
- the description of the LDR and STR com-mands (page 608), but neglects to
- say what it does. It is, in fact, used for setting the write-back option
- and has exactly the same effect as ‘!’. Note that the *MEMORYI disassem
- bler always disassembles pre-indexed write-back with ‘!’ and post-
- indexed write-back with ‘T’, although you may use either form when
- assembling. Bear in mind that post-indexed write-back always takes
- place, regardless of the state of the write-back flag.
- 2.10
- • Bit patterns for LDR and STR − There is an omission in Appendix C of
- the “ARM Assembly Language programming” book published by Com-puter
- Concepts. Appendix C gives the bit patterns of the ARM instruction set,
- but does not describe the ‘L’ bit of the ‘Single Data transfer’
- instruction. This is the Load/Store bit: 0=store (STR), 1=load (LDR).
- 2.10
- This description also applies to the ‘Block data transfer’ instructions
- (STM and LDM).
- 2.10
- • BASIC restrictions − In BASIC II on the BBC B (and IV on the Master)
- there were a number of restrictions which no longer apply to BASIC V on
- the Archimedes, but have not been specifically mentioned in the
- Archimedes User Guide. They are worth noting because they have probably
- become ingrained in BBC B users who may not have realised that they have
- been lifted.
- 2.10
- 1) You can now change MODE inside a procedure or function. This is
- because the screen RAM is now completely separate from the program area.
- 2.10
- 2) The nesting limits of FOR, REPEAT and GOSUB (10, 20 and 26 respec
- tively) no longer apply. Instead of a fixed limit, you can now nest
- loops until you run out of RAM. I have successfully nested loops 15,000
- deep and run a recursive procedure 30,000 levels deep! Strangely,
- nesting GOSUBs too deeply is not trapped and will corrupt your program,
- but this situation is unlikely to happen in practice.
- 2.10
- • BASIC errors − I have found four BASIC errors not listed in the User
- Guide (Issue 2). They are:
- 2.10
- 11 No room for this dimension − An attempt was made to dimension an
- array for which there was insufficient space.
- 2.10
- 25 Bad MODE − An attempt was made to select a screen mode for which
- there is insufficient memory. More memory can be allocated by *CONFIGURE
- SCREENSIZE.
- 2.10
- 37 No room for function/procedure call − An attempt was made to ‘nest’
- too many function and/or procedure calls.
- 2.10
- 44 Too many nested structures − An attempt was made to ‘nest’ too many
- FOR...NEXT, REPEAT...UNTIL and/or WHILE... ENDWHILE loops.
- 2.10
- Note that 11 and 44 are covered in the Archimedes 400 series BBC BASIC
- Guide.
- 2.10
- • Using FORTRAN 77 − The article on using FORTRAN 77 in Archive 1.7
- included a sample subroutine showing how to access graphics from
- FORTRAN. There are a number of problems with this subroutine. It can’t
- cope with negative graphics coordinates (needed after an origin shift),
- it sends a line feed to the screen when it is used, which can cause your
- graphics to scroll upwards, and it uses an output channel which should
- be kept free for file access. The following solves all the problems:
- 2.10
- SUBROUTINE PLOT(K,X,Y)
- 2.10
- INTEGER X,Y I1=IAND(X,?IFF)
- 2.10
- I2=ISHFT(IAND(X,?IFF00),-8)
- 2.10
- J1=IAND(Y,?IFF)
- 2.10
- J2=ISHFT(IAND(Y,?IFF00),-8)
- 2.10
- PRINT 100,CHAR(25),CHAR(K),CHAR(I1),
- 2.10
- CHAR(I2),CHAR(J1),CHAR(J2)
- 2.10
- RETURN
- 2.10
- 100 FORMAT (6A1$)
- 2.10
- END
- 2.10
- This method masks out the unwanted bits and shifts the data into the
- l.s.b., thus preserving the sign. It uses PRINT instead of WRITE,
- avoiding the need for a channel number. The $ at the end of the FORMAT
- statement suppresses the line feed. (No criticism of the original
- authors is intended; my first attempt looked very similar!)
- 2.10
- Included on this month’s program disc is Graph_ FOR, the FORTRAN source
- of a set of graphics subroutines which provide a full set of VDU calls.
- Some, like BELL for instance, are trivial, but others are more
- complicated.
- 2.10
- • Printer conventions − Many people seem to have difficulty with
- setting up the correct linefeed or non-linefeed for their printers for
- different app-lications, so I.J. King has tried to explain it for usÉ
- 2.10
- How the Archimedes deals with varying printer standards − Since there
- are two standards for printers, the Archimedes has a mechanism to allow
- it to cope with both. The standards in question affect the way the paper
- is fed through the mechanism and there are two possible cases:
- 2.10
- A. Auto Linefeed: every time the printer receives a carriage return
- character (code 13), it generates a line feed (code 10) to move the
- paper up a line.
- 2.10
- B. Non-Auto Linefeed: the printer does not gener-ate its own linefeed
- characters but relies on the com-puter to send a linefeed after every
- carriage return.
- 2.10
- Most modern printers will actually have a switch to select either of
- these modes, allowing them to be compatible with most computers, but
- this is likely to be difficult to reach. The Archimedes will (in the
- case of virtually all software) send a line feed after every carriage
- return. To allow compatibility with printers in mode (A) above, it is
- possible to tell the machine to ignore a particular code when sent to
- the printer. By setting this to 10 (the code for line feed), no line
- feeds will be sent to the printer and you are compatible with type (A)
- printers.
- 2.10
- This code is set up using the *IGNORE command, for example:
- 2.10
- *IGNORE 10
- 2.10
- To disable the trap altogether, simply enter *IGNORE on its own. Either
- of these may be preceded by CONFIGURE to make the effect permanent, e.g.
- 2.10
- *CONFIGURE IGNORE 10
- 2.10
- The Archimedes is set up with a factory default ignore code of 10,
- making the system compatible with type (A) printers when it arrives.
- 2.10
- Problems arising when the protocol is ignored − The above should make
- everything seem fairly simple and indeed it ought to be. However, some
- software houses, notably GST and Grafox (i.e. First Word Plus and
- Logistix) have chosen to ignore the sensible protocols described above
- and override the *IGNORE status in such a way that they are only
- compatible with type (B) printers, regardless of the setting of *IGNORE.
- 2.10
- This means that the hapless user will have been forced to configure his
- printer to be type (B) but will not have re-configured his Archimedes
- since the software will override the settings and work anyway. They then
- go out and purchase a correctly written package, such as System
- DeltaPlus etc, and the result is a type (B) printer (generating no line
- feeds) on a machine configured for a type (A) printer (and so sending no
- line feeds) which results in no line feeds at all and the text all comes
- out on the same line.
- 2.10
- A subsidiary problem occurs in some cases, when reconfiguring the
- Archimedes to work with type (B) printers, as is necessary if you wish
- to use both First Word Plus/Logistix and other, correctly written,
- software. The correct way to do this is to enter the command *CONFIGURE
- IGNORE with no parameters, completely disabling the printer trap. It is
- not correct to enter *CONFIGURE IGNORE 0 as this prevents code 0 from
- being sent to the printer and may corrupt some graphics/font change
- sequences used by certain software.
- 2.10
- Conclusions − If you are using any package which overrides the Acorn
- protocols for printer compatibility in the way described above and also
- wish to use correctly written software (in my case, I use both Logistix
- and System DeltaPlus), you should take the following steps:
- 2.10
- 1. Set your printer so that Auto Linefeed is OFF (usually a DIP switch).
- 2.10
- 2. Enter *CONFIGURE IGNORE
- 2.10
- 3. Press <ctrl-break> to reconfigure your machine.
- 2.10
- This now only leaves us with one question − why are Acornsoft apparently
- condoning this system of forcing the user to have a printer type
- different from that for which the machine is configured by default?!
- 2.10
- • PC Emulator Star Commands (Response to query in Archive 2.5 p5) −
- There is no need for a *Configure Floppies command from the PC emul-ator
- when copying from one 3.5“ disc to another. You must understand the
- distinction between log-ical and physical drives: logical drives are
- known to the emulator as A, B, C, etc, and are mapped onto the physical
- drives 0, 1, etc. It is possible to have more than one logical drive
- assigned the same phys-ical drive. This is what happens when you have
- your Archimedes configured for one floppy − the emul-ator maps logical
- drives A and B onto physical drive 0 and, recognising this when you copy
- from A to B, prompts for a disc change. If you have two floppies, the
- emulator maps A and B onto 0 and 1 respect-ively. I use an external
- 5.25” 40/80 track drive on my Archimedes and my config.sys file, listed
- below, illustrates the way around the problem.
- 2.10
- device=driver.sys /d:0 /t:80 /f:2
- 2.10
- device=driver.sys /d:1 /t:80 /f:2
- 2.10
- device=driver.sys /d:1 /t:40 /f:0
- 2.10
- device=driver.sys /d:1 /t:40 /f:0
- 2.10
- files=20
- 2.10
- buffers=10
- 2.10
- The first four lines assign more logical drives (which the emulator
- gives the letters C, D, E and F) to the physical drives 0 and 1. The
- meaning of the parameters is:
- 2.10
- /d: physical drive number
- 2.10
- (0 for internal, 1 for external)
- 2.10
- /t: number of tracks on disc
- 2.10
- (80 for 720k and 40 for 360k)
- 2.10
- /f: disc format
- 2.10
- (2 means 720k, 0 means 360k)
- 2.10
- The first line assigns logical drive C to physical drive 0. You can now
- copy from 3.5“ to 3.5” by using ‘copy a:x.dat c:’ and DOS will prompt
- for a disc change. The second line maps logical drive D to physical
- drive 1, enabling copying between 5.25“ 80-track floppies (copy b:x.dat
- d:). The last two lines assign two 40-track drives (E and F) to physical
- drive 1, allowing copying between 40-track 5.25” discs (copy e:x.dat f:)
- in the same way.
- 2.10
- You should be aware that loading all these device drivers will use up
- some application workspace, leaving less for programs, so only install
- them when you need them!
- 2.10
- • Three SWIs which are not mentioned in the Programmer’s Reference
- Manual (Issue 1):
- 2.10
- OS_AddToVector &47
- 2.10
- OS_WriteEnv &48
- 2.10
- WaveSynth_Load &40300
- 2.10
- (WaveSynth_Load was mentioned but not ident-ified in Archive 1.8, p9)
- 2.10
- Also, there is one SWI which seems to have been mis-spelled in the
- Arthur 1.20 ROMs, namely:
- 2.10
- Sound_QSDispatch &401C4
- 2.10
- The ‘S’ between Q and Dispatch shouldn’t be there. If you refer to SWIs
- by name rather than number then you must mis-spell this one in the same
- way otherwise it won’t be recognised!
- 2.10
- • Infinite energy for ThunderMonk − J.R. Donaldson sent in this
- program, which will alter your ThunderMonk disk to give you infinite
- energy.
- 2.10
- 10 REM > Thun_Cheat
- 2.10
- 20 REM Joe Pineapples − Cool Assassin
- 2.10
- 30
- 2.10
- 40 DIM sector% &400
- 2.10
- 50
- 2.10
- 60 MODE 0
- 2.10
- 70 PRINT “Please insert ThunderMonk
- 2.10
- disc and press a key.“
- 2.10
- 80 G = GET
- 2.10
- 90
- 2.10
- 100 PRINT ‘“Now loading relevant
- 2.10
- sector“‘
- 2.10
- 110
- 2.10
- 120 SYS “ADFS_DiscOp”,, 1, &C6400,
- 2.10
- sector%, &400
- 2.10
- 130
- 2.10
- 140 PRINT “Do you want to play
- 2.10
- (C)heat or Normal ?“
- 2.10
- 150 G = GET
- 2.10
- 160
- 2.10
- 170 IF G=ASC(“C”) OR G=ASC(“c”) THEN
- 2.10
- 180 sector%!&388 = &E59C0044
- 2.10
- 190 sector%!&38C = &E28000FE
- 2.10
- 200 sector%!&390 = &E58C0044
- 2.10
- 210 ELSE
- 2.10
- 220 sector%!&388 = &059C0044
- 2.10
- 230 sector%!&38C = &02400001
- 2.10
- 240 sector%!&390 = &058C0044
- 2.10
- 250 ENDIF
- 2.10
- 260
- 2.10
- 270 PRINT ‘“Now saving relevant
- 2.10
- sector“‘
- 2.10
- 280
- 2.10
- 290 SYS “ADFS_DiscOp”,, 2, &C6400,
- 2.10
- sector%, &400
- 2.10
- 300
- 2.10
- 310 PRINT “Change complete. Now use
- 2.10
- disc as normal.“
- 2.10
- 320 END
- 2.10
- • Thunder Monk passwords − the Thunder Monk passwords change from disc
- to disc (or do they change from month to month? Ed), but they can be
- found at address &4E400. Just find your level two password in the list
- below and next two words will be used for levels three and four e.g. our
- level two password is STEVES so the passwords for the next levels are
- BIRTHDAY and MIDSUMMER.
- 2.10
- SHIRT JUMPER WELLIES Y-FRONTS LOVERS HEARTS CUPID VALENTINE DANIEL AND
- SIMONS BIRTHDAY JOKES SHOWERS FOOL SPRING POLE EXAMS SUNNY STUDY STEVES
- BIRTHDAY MIDSUMMER WARMER HOLIDAYS MAJORCA SUNHAT HOTTER RESULTS FAILED
- PASSED PISSUP SCORCHER RESTART SUNBURN ARCHIE SPOOK SHIVER HALLOWEEN
- COOLING BONFIRE WEEEEEE FIREWORKS CHILLY CHRISTMAS HOLLY PRESENTS MERRY!
- 2.10
- (D’you get the significance of the passwords?? Ed.)
- 2.10
- • View to FWP − When using the utility provided with First Word Plus
- to convert View files, Robert Leon noted that the left margin default
- (in the Print File dialogue window) should be changed to 4, otherwise
- the file is not printed properly.
- 2.10
- • Using 1st Mail for multi-column printouts − David Scott − Text which
- is to be printed in more than one column is first prepared with First
- Word Plus and it is at this stage that preparations must be made for the
- print format. The text format must suit the final required column width
- otherwise First Mail will ignore the instructions to print out in multi
- columns.
- 2.10
- An example will show how to lay out the text. Suppose that you require
- two columns each 31 characters wide set side by side on a 65 character
- wide sheet. This will be possible as it allows 3 characters for the
- central white column since
- 2.10
- 31 + 3 + 31 = 65
- 2.10
- The text must be prepared using a line length of 31 characters. The page
- markings in First Word Plus will show final page 1 column 1 as page 1,
- final page 1 column 2 as page 2, final page 2 column 1 as page 3 and so
- on.
- 2.10
- When the text has been fully prepared enter First Mail and follow the
- instructions given on pages 196 and 197 of the manual. The number of
- columns must be set to 2 in this example.
- 2.10
- • Another possible bug in First Mail − David Leckie − When using First
- Word Plus with the ruler set to double line spacing, continuous text,
- i.e. no returns are double spaced but text followed with a return is not
- double spaced as you would expect.
- 2.10
- However when a First Mail mail-merge is done from the file, the mrg file
- contains double spaced text where there was single spaced text in the
- original doc. Thus if you want, say, your address lines to be double
- spaced then they should be a RETURN between each line in the doc file
- only if you are not going to do a First Mail mail merge. If you are
- doing a mail merge then they should be single spaced i.e. no RETURNS
- because after the mail merge double line spacing will be inserted! Very
- funny!
- 2.10
- • “Memalloc” module − John Fidler was playing with the !Lander program
- in RISC-OS when he realised that it should not have run with the
- configuration settings on his machine. He looked in the !Lander
- directory (by clicking on the icon in the directory viewer while holding
- the <shift> key) and found the Memalloc module.
- 2.10
- This module provides nine new star commands, which allow you to check
- and alter the size of various memory pools i.e. system heap, RMA, screen
- area, sprite area and font cache.
- 2.10
- ==> Help on keyword MemAlloc
- 2.10
- Module is: MemAlloc util 0.11 (06 Dec 1988)
- 2.10
- Commands provided:
- 2.10
- SystemSize RMASize ScreenSize SpriteSize FontSize
- 2.10
- RAMFSSize RMAFree SpriteFree FontFree
- 2.10
- • Desktop ScreenSize configuration − When using the desktop, the
- memory allocated to the screen area is regulated by the desktop screen
- mode and not the configuration setting e.g. if you are in mode 12 then
- the screen area will have 80k allocated to it (or 96k for the 400
- series).
- 2.10
- • Desktop startup commands − When starting the desktop using *Desktop,
- you can make the Archimedes run a file or perform a star command. This
- facility could be used to start the desktop up in a predefined state.
- 2.10
- ==> Help on keyword Desktop
- 2.10
- *Desktop starts up any dormant Wimp modules, and also passes an optional
- 2.10
- *command or file of *commands to Wimp_StartTask.
- 2.10
- Syntax: *Desktop [<*command> | -File <filename>]
- 2.10
- • Converting ArcTerm 6.01 to RISC-OS − Arc-Term 6.01 will work under
- RISC-OS if you make a !Run file in the !ArcTerm application directory:
- 2.10
- RMEnsure InternationalKeyboard 0.17
- 2.10
- RMReInit InternationalKeyboard
- 2.10
- DIR <Obey$Dir>.!ArcTerm
- 2.10
- Run ArcTerm
- 2.10
- • Extra Options for the Copy Command − The new User Guide (page 208)
- lists a number of new options for the Copy command which considerably
- extend its usefulness. The L and N options are par-ticularly useful for
- performing backups from hard disc to floppy disc. Thus the command:
- 2.10
- *Copy HD::$.A.* FL::$.* ~CFQR
- 2.10
- will make a quick backup, without confirmation, of all the files and
- subdirectories in directory A of the hard disc named HD onto the floppy
- disc named FL. If however the option N is also added then only the files
- which have changed since the last backup will be copied, thus reducing
- the backup time consider-ably. If the L option is also added then even
- more time is saved as the directories of both source and destination
- disks are checked before any attempt is made to load the files
- themselves.
- 2.10
- If suitable Copy commands are added to the end of an application !Run
- file then an automatic backup of changed files can be made when you have
- finished using the application. In this case it is vital to quote the
- name of the required backup floppy disc so that a request to load it can
- be given if it is not already in the drive.
- 2.10
- • RISC-OS RS423 − Richard House says that using RISC-OS he can now
- communicate with his BBC Model B at 19200 baud, without any errors
- (whereas under Arthur 1.2, even with the patch, he was limited to 9600
- baud).
- 2.10
- • Diagram II using RAMdisc − Load the file “Setup” and change the “8”
- in lines 10045, 10750, 10765, 10805 and 11325 to “23”. This will cause
- it to access the ram-disk (assuming you copied Diagram II over to the
- ram-disk) thereby running much faster during scrolling and saving wear
- and tear on your floppy or hard disk. (J.Daniels of Pineapple Software)
- 2.10
- • MIDI !Maestro − One reader says that there is an undocumented
- facility in the !Maestro application which can play a MIDI instrument if
- the MIDI podule is fitted.
- 2.10
- • Typing control characters − If you wish to use a “non-keyboard”
- character under RISC-OS, just hold down the <ALT> key and type in the
- character number on the keypad.
- 2.10
- • RMReInit SpriteUtils − Many applications unplug modules and
- reinitialise them later. Often, under RISC-OS, the SpriteUtils module
- does not get reinitialised. If you have any problems loading sprites or
- get the “SWI not known” error, you can check whether your modules have
- been reinitialised properly by typing *ROMModules.
- 2.10
- One reader says that ‘Pacmania’ can be cured of this by adding the
- following line to the !BOOT file:
- 2.10
- 935 *RMReInit SpriteUtils
- 2.10
- • Multi-Tasking − How many tasks can RISC-OS run simultaneously? The
- manual doesn’t say, so I decided to find out by loading multiple copies
- of the desktop clock. When I tried to load the 29th clock I got an error
- message “Too many tasks”, making the upper limit 28.
- 2.10
- • Leaving the Desktop from a Command File − David Scott − The answer
- to my own previous help query is actually quite simple when you know
- how! The last command in the file, which must be an obey file, (it does
- not work with an exec file) must be:
- 2.10
- *fx138,0,252
- 2.10
- which simulates pressing <control-shift-f12>.
- 2.10
- • Space for large applications − The methods used by Acorn and other
- suppliers of application software to load their applications which
- require a lot of space, seem to be both devious and, in many cases,
- ineffective since they result in less space being available for the
- application than under Arthur 1.2.
- 2.10
- The method illustrated below allows over 300k of data space in Logistix
- or over 600k of memory with the PC Emulator on a 1Mbyte machine. The
- technique is a three stage process and is illustrated for Logistix.
- 2.10
- Note that the machine will have to be reset after using the application
- in order to restore all the normal modules and their facilities.
- 2.10
- Note also that the amount of free space will vary depending on the
- configuration settings. In my case, these are 80k for the screen (Mode
- 12) and 0K for System sprites, font cache and RAM FS.
- 2.10
- If you use Econet then the modules NetFS, NetPrint, BBCEconet, NetFiler
- and NetStatus should also be killed in Stage 2. If you do not use Econet
- then you will gain marginally more space for all applications by
- *Unplugging these modules as I have done.
- 2.10
- Stage 1 − Set up the standard !Run file for the application so that it
- sets a function key to execute the stage 2 file after quitting the
- desktop.
- 2.10
- | >$.!Logistix.!Run
- 2.10
- IconSprites <Obey$Dir>.!Sprites
- 2.10
- Key1 Quit|MDir $|MExec $.!Logistix.Lgx1|M
- 2.10
- Fx138,0,252
- 2.10
- Fx138,0,129
- 2.10
- Stage 2 − This file must be an command file (not Obey). It clears the
- temporary modules and then kills all the unwanted modules. A function
- key is then set up to execute Stage 3 and the file ends by recovering
- the freed space using the RMTidy com-mand which must be the last command
- in the file.
- 2.10
- | >$.!Logistix.Lgx1
- 2.10
- RMClear
- 2.10
- RMKill Debugger
- 2.10
- RMKill Desktop
- 2.10
- RMKill WindowManager
- 2.10
- RMKill FontManager
- 2.10
- RMKill InternationalKeyboard
- 2.10
- RMKill SoundScheduler
- 2.10
- RMKill StringLib
- 2.10
- RMKill Percussion
- 2.10
- RMKill SpriteExtend
- 2.10
- RMKill Draw
- 2.10
- RMKill Hourglass
- 2.10
- RMKill Podule
- 2.10
- Key 1 *Obey $.!Logistix.Lgx2|M
- 2.10
- FX138 0 129
- 2.10
- RMTidy
- 2.10
- Stage 3 − This Obey file sets the current directory (it was cleared by
- the radical effects of RMtidy) and then loads the Floating point
- emulator and Logistix directly. The final line is an optional backup
- command which automatically backs the new and changed data files up to a
- floppy disc (named S1 in this case).
- 2.10
- | >$.!Logistix.Lgx2
- 2.10
- Dir $.!Logistix
- 2.10
- RMLoad $.!System.Modules.
- 2.10
- FPEmulator
- 2.10
- Lgx
- 2.10
- COPY :DJS.!Logistix.Sheet.* :S1.*
- 2.10
- ~CFLNQ
- 2.10
- PC Emulator − The method is similar for stages 1 and 2 except the
- following additional modules can be killed in stage 2: SystemDevices,
- TaskManager, PaletteUtil, Filer, ADFSFiler, RAMFSFiler, ShellCLI and
- RamFS. Stage 3 is not required as the line which sets the function key
- termination command is:
- 2.10
- Key 1 PC.Emulate|M
- 2.10
- which enters the PC Emulator directly. Note that the PC directory must
- be in the root and must be called PC otherwise the Emulator fails during
- loading.
- 2.10
- • Getting First Word Plus started − further to the comments on page
- 20/21, last month, it is not a good idea to use *MOUNT as First Word
- Plus will then not allow you to change discs, *DRIVE should be used and
- this works fine. My machine is configured to boot with the external
- drive selected, which usually holds a “library disc”, which is how I
- discovered the problem. First Word Plus now boots happily under RISC-OS,
- including an amended version of the key press module which traps <ctrl-
- f12> to provide a command line similar to that on the desk top − i.e.
- scrolling up from the bottom of the screen. (We’ll try to get hold of
- this for the monthly disc. Ed.)
- 2.10
- • First Word Plus from the RISC-OS desktop − create the following run
- file:
- 2.10
- !Run
- 2.10
- | !Run for !First Word Plus+ version 0.01
- 2.10
- IconSprites <Obey$Dir>.!Sprites
- 2.10
- WimpSlot -min 400k
- 2.10
- set FirstWordPlus$Resources $.Resources.1wp.
- 2.10
- set FirstWordPlus$Docs &.1wp.
- 2.10
- echo<5><23><17><7><6><8><0><8><0>
- 2.10
- <0><0><0><0>
- 2.10
- run “<FirstWordPlus$Resources>1wp”
- 2.10
- • First Mail under RISC-OS − David Leckie − While First Word Plus has
- drawn a lot of comment, very little mention has been made First Mail,
- the mail merge program that accompanies it.
- 2.10
- When run under RISC-OS the main window will not resize. Now this may not
- seem like much of a problem but the trouble is that the printer window
- is hidden under the main window and cannot be easily accessed.
- 2.10
- Fortunately the corners of the window are just visible and can be
- clicked on. The printer driver window pops up when clicked on ok, but
- while the destination printer window can be clicked on, the name of the
- selected destination printer is still hidden. This problem is compounded
- by the last line of the 1st paragraph on page 154 of the manual being
- wrong. “The four options Parallel Port, Serial Port, Network Port and
- Disc will appear in rotation.
- 2.10
- They do not rotate in the order above. Parallel Port is the first and
- Disk is the third not fourth but which is network and serial? Can
- someone with Arthur please tell us?
- 2.10
- Thus, if you want to do a merge to parallel printer it works fine. For
- disc, point to the corner of the window and give 2 clicks (not 3). If
- you need serial or network, try 1 or 3 clicks.
- 2.10
- Thanks to Mark Burch who helped to crack the problem.
- 2.10
- • Installing Artisan − Sean Kelly − There are three tips: the first is
- on getting Artisan to return control to the desktop without resetting
- the system; the second is on putting Artisan in any chosen directory;
- the third is not strictly related to RISC-OS, but is on persuading
- Artisan to work with compressed screens.
- 2.10
- Returning to the desktop − When Artisan is installed as described on the
- RISC-OS support disc, it does not return correctly to the desktop. The
- following modification was made to the program on my A440, and works
- perfectly:
- 2.10
- 1. Load program ART5 and, using the BASIC EDITOR, find the line: “DEF
- PROCLAR”
- 2.10
- 2. The next line should be a multi-statement line containing in-line
- assembly code. If so, you have found the correct routine. Delete
- everything on this line except for the first three statements and then
- add “:QUIT” so that the new line reads:
- 2.10
- MODE12:OSCLI“FX4”:OSCLI“UP”:QUIT
- 2.10
- 3. Rename the old ART5 (in case you have made a mistake) and save the
- new version as ART5.
- 2.10
- This new version returns to the desktop, in the same condition as when
- Artisan was called, when you quit Artisan.
- 2.10
- Altering the directory structure − When installed using the hard disc
- install program, Artisan insists on living in a directory called
- :4.$.Artisan. This can be changed − the following details relate to my
- chosen directory of :4.$.APPS.!ARTISAN.
- 2.10
- 1. !RUN should be altered from the support disc version. The new version
- is:
- 2.10
- ECHO <22><&8C>
- 2.10
- WIMPSLOT -MIN 200k
- 2.10
- DIR :4.$.APPS.!ARTISAN *** put your own directory here ***
- 2.10
- URD @ BASIC ART4
- 2.10
- In my case, the pathname of !RUN is “:4.$.APPS. !ARTISAN.!RUN”. Before
- changing !RUN, re-name the old one in case of accident.
- 2.10
- 2. Alter ART5 using the Basic Editor. Several lines need changing; in
- each case the change consists of altering the given directory to point
- to your new directory. The lines that need altering can be found by
- searching for the following strings using the editor (they are all
- unambiguous, but the case of each letter is crucial):
- 2.10
- cLare%=FALSE:
- 2.10
- A%=cLARESMI
- 2.10
- WHEN12:OSCLI
- 2.10
- WHEN1:OSCLI“LOAD
- 2.10
- OSCLI“CDIR
- 2.10
- OSCLI“DIR ”+ClA$+
- 2.10
- Preserve the old ART5 in case of problems.
- 2.10
- • Adapting Artisan for Compressed Screens − I use a modified version
- of the screen compression routine originally published in Personal
- Computer World magazine. It uses the commands *CSCREENLOAD and
- *CSCREENSAVE to load and save compressed screens, and compressed screens
- are given the filetype &010. The adaptation below will work equally well
- with other com-pression routines with the proviso that the compressed
- screen loading routine must recog-nize and correctly deal with normally
- saved screens (filetype &FF9).
- 2.10
- 1. Load ART5 and modify it using the BASIC Editor (first rename ART5, in
- case of errors). Immediately after the REM statements at the start of
- the program, add these two lines (substituting your own compressed
- screen save and load commands):
- 2.10
- *SET Alias$SCREENSAVE CSCREENSAVE %0
- 2.10
- *SET Alias$SCREENLOAD CSCREENLOAD %0
- 2.10
- Substitute the names of your own commands for CSCREENSAVE and
- CSCREENLOAD.
- 2.10
- 2. Find DEFPROCcLaRESM with the editor. Look about 14 lines down and
- there will be a line beginning with WHEN&FF9. Four lines further down
- should be a line beginning with ENDIF. Add two new lines after this
- ENDIF line (substituting your own compressed screen filetype):
- 2.10
- WHEN &010
- 2.10
- RES%=3:mIC%=ReSM%:ReSM%+=1:cLarESM%=7
- 2.10
- 3. Find DEFPROCPS with the editor. Look about seventeen lines down and
- there will be a line beginning with WHEN&FF9. Six lines further down
- should be a line beginning with ENDIF. Add two new lines after this
- ENDIF line (substituting your own compressed screen filetype):
- 2.10
- WHEN &010
- 2.10
- PROCGw(laRES%): clArES%=4
- 2.10
- The modified version of ART5 will correctly handle compressed and
- uncompressed screens for loading, and will normally save screens in
- compressed form.
- 2.10
- • RISC-OS Postscript Printer Drivers − One of our readers can only use
- a laser printer from an Apple Mac, but wanted to obtain good quality
- images of the documents that he produced in !Draw and !Edit. In order to
- do this he redirected the output of the !PrinterPS to a file and
- ‘ported’ the file across to the Mac. The reason why this works is
- because the output of !PrinterPS application is straight ASCII Post
- script text, so in theory, the resulting file could be used by any
- Postscript set up.
- 2.10
- • Configuring !PrinterDM − some readers have had problems outputting
- to their dot matrix printers. This might be because the !PrinterDM
- application must be configured for the printer you are using. This can
- be done by clicking, with <select>, on the printer icon (once installed)
- and then clicking on the printer name that appears in a window, until
- the name of your printer appears. Then select the “Save Choice” option
- on the !PrinterDM menu. The printers that !PrinterDM supports are: Epson
- FX, LQ, and LQ-850 compatibles and the NEC Pin-Writer P6 plus.
- 2.10
- • RISC-OS multisync text scaling solution! − Richard Averill − If you
- turn back to Archive 2.9 p14, you will see the problem of text scaling
- in multisync modes raised. Having also experienced this problem, I tried
- to solve it.
- 2.10
- Firstly, I tried using the output to sprites feature to modify this.
- Since this did not alter the size of the font at all, I then tried a
- more interesting method. I knew that the standard vdu 5 font size was
- 8x8 pixels, so I ran the following program to tell me which locations in
- the operating system’s workspace (&0000-&7FFF) contained the value 8.
- 2.10
- 10 REM > $.TextSize.Find8
- 2.10
- 20 REM (C) Richard Averill, 1989.
- 2.10
- 30 FOR I%=0 TO &7FFC STEP 4
- 2.10
- 40 IF !I%=8 THEN PRINT ~I%;
- 2.10
- 50 NEXT
- 2.10
- I then had a list of locations, so I set vdu 5 mode and *Memory’ed each
- of the locations to have a closer look. Storing 16 in the second
- location (&1360) caused the x text size to be doubled! There were 3 more
- 8‘s consecutively after this value, so after a little testing I came to
- the conclusion shown by the following table:
- 2.10
- Address Contents
- 2.10
- &1360 x size
- 2.10
- &1364 y size
- 2.10
- &1368 x spacing
- 2.10
- &136C y spacing
- 2.10
- All values are given in pixels, so by default these are 8,8,8,8. The
- WIMP manager changes the x and y values according to the x and y ‘eig’
- factors read by swi OS_ReadModeVariable detailed in OS1.2 PRM pages
- 124−126. Note that the values need not be multiples of 8, but the
- characters will look rather odd otherwise!
- 2.10
- The following procedure will enable you to set the text size and
- spacing. The syntax is PROCtextsize(x size, y size, x spacing, y
- spacing).
- 2.10
- 10000 DEF PROCtextsize(x%,y%,sx%
- 2.10
- ,sy%)
- 2.10
- 10010 !&1360=x%
- 2.10
- 10020 !&1364=y%
- 2.10
- 10030 !&1368=sx%
- 2.10
- 10040 !&136C=sy%
- 2.10
- 10050 ENDPROC
- 2.10
- For example, PROCtextsize(16,8,16,8) will give you double width text
- when in VDU 5 mode. This will be square in mode 12 etc. and of a
- rectangular shape in mode 20 etc. The text spacing will usually be the
- same as the text size.
- 2.10
- To set the default text size from the RISC-OS desktop (the answer to the
- query,) run the following program (which is in the “$.TextSize”
- directory of the monthly disc) from within the desktop, and it will
- redraw the whole screen to enable the new size to take effect.
- 2.10
- 10 REM > $.TextSize.SetSize
- 2.10
- 20 REM (C) Richard Averill, 1989.
- 2.10
- 30 REM restores default text size and spacing in the RISC-OS desktop.
- 2.10
- 40
- 2.10
- 50 !&1360=8
- 2.10
- 60 !&1364=8
- 2.10
- 70 !&1368=8
- 2.10
- 80 !&136C=8
- 2.10
- 90 SYS “Wimp_Initialise”,200,
- 2.10
- &4B534154 TO task%
- 2.10
- 100 SYS “Wimp_ForceRedraw”,-1,0,0,
- 2.10
- &FFFF,&FFFF
- 2.10
- 110 SYS “Wimp_CloseDown”,task%,
- 2.10
- &4B534154
- 2.10
- 120 QUIT
- 2.10
- This will set the text size to 8 pixels, the same as under the Arthur
- WIMP manager. So if you have a high resolution monochrome, the text will
- become four times smaller in each direction than normal!
- 2.10
- Unfortunately, there is a slight problem. The RISC-OS WIMP assumes
- scaling will be done to ensure that the size of the text is always 16x32
- OS units and uses these values when calculating text widths/heights
- instead of finding the sizes from the operating system. So any verti
- cally centred text (such as window titles) will not be centred properly
- in multisync modes!
- 2.10
- For real compatibility with Arthur 1.2 WIMP applications, you can save
- the Arthur 1.2 WindowManager module from ROM to disc and *RMLoad this
- into RISC-OS instead. The Arthur 1.2 WIMP module is in the “$.TextSize”
- directory of this month’s programs disc.
- 2.10
-